Next:
Type Conversion 2
, Previous:
CRTP
, Up:
Index
E) reinterpret_cast
reinterpret_cast
reinterpret_cast는 임의의 포인터 타입끼리 변환을 허용하는 캐스트 연산자이다.
(정수형->포인터); 위험한 사용법임
#include
<iostream>
#include
<cstdio>
using
namespace
std
;
struct
Cube
{
int
a
;
}
;
int
main
(
void
)
{
int
a
=
71234561
;
int
*
ptr1
;
ptr1
=reinterpret_cast<
int
*>
(
a
)
;
// int -> int*
int
*
ptr2
=&
a
;
char
*
c
;
c
=reinterpret_cast<
char
*>
(
ptr2
)
;
// int* -> char*
//
컴
파
일
러
에
따
라
다
르
게
동
작
함
cout
<<
"
2. int* -> char* (cout):
"
<<*
c
<<
endl
;
printf
(
"
2. int* -> char* (printf int type):
%d\n
"
,
*
c
)
;
Cube
cb
;
cb
.
a
=
20
;
int
*
ptr3
;
ptr3
=reinterpret_cast<
int
*>
(
&
cb
)
;
// struct -> int*
cout
<<
"
3. struct -> int*:
"
<<*
ptr3
<<
endl
;
return
0
;
}